// 修改默认的图标
function myAddDiyDom(treeId,treeNode) {
// treeId 是整个树形结构附着的 ul 标签的 id
    console.log("treeId="+treeId);
// 当前树形节点的全部的数据，包括从后端查询得到的 Menu 对象的全部属性
    console.log(treeNode);
// zTree 生成 id 的规则
// 例子：treeDemo_7_ico
// 解析：ul 标签的 id_当前节点的序号_功能
// 提示：“ul 标签的 id_当前节点的序号”部分可以通过访问 treeNode 的 tId 属性得到
// 根据 id 的生成规则拼接出来 span 标签的 id
    var spanId = treeNode.tId + "_ico";
// 根据控制图标的 span 标签的 id 找到这个 span 标签
// 删除旧的 class
// 添加新的 class
    $("#"+spanId)
        .removeClass()
        .addClass(treeNode.icon);
}


function myRemoveHoverDom(treeId, treeNode) {
    // 拼接按钮组的 id
    var btnGroupId = treeNode.tId + "_btnGrp";
    // 移除对应的元素
    $("#"+btnGroupId).remove();
}

function myAddHoverDom(treeId, treeNode) {
    var btnGroupId = treeNode.tId + "_btnGrp";

    //  鼠标往上移动会添加多次，这里设置如果已经添加过一次就不再添加了
    if($("#"+btnGroupId).length > 0) {
        return ;
    }
    var addBtn = "<a id='" + treeNode.id + "' class='addBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0;' href='#' title='添加子节点'>&nbsp;&nbsp;<i class='fa fa-fw fa-plus rbg '></i></a>";
    var removeBtn = "<a id='" + treeNode.id + "' class='removeBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0px;' href='#' title=' 删 除 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-times rbg '></i></a>";
    var editBtn = "<a id='"+treeNode.id+"' class='editBtn btn btn-info dropdown-toggle btn-xs' style='margin-left:10px;padding-top:0px;' href='#' title=' 修 改 节 点 '>&nbsp;&nbsp;<i class='fa fa-fw fa-edit rbg '></i></a>";
    var level = treeNode.level;
    var btnHtml = "";
    if(level == 0){
        btnHtml = addBtn;
    } else if (level == 1){
        btnHtml = addBtn + " " + editBtn;
        var length = treeNode.children.length;
        if(length == 0){
            btnHtml = btnHtml + " " + removeBtn;
        }
    } else if (level == 2){
        btnHtml = editBtn + " " + removeBtn;
    }
    var anchorId = treeNode.tId + "_a";
    $("#"+anchorId).after("<span id='"+btnGroupId+"'>" + btnHtml + "</span>");
}

//  生成树形结构的方法
function generateTree(){
//  1.准备生成树形结构的 JSON 数据，数据的来源是发送 Ajax 请求得
    $.ajax({
        "url":"menu/getWholeTreeNew",
        "type":"post",
        "dataType":"json",
        "success":function (response){

            var result = response.operationResult;

            if(result == "SUCCESS") {
                //  2.创建 JSON 对象用于存储对 zTree 所做的设置
                var setting = {
                    //  自定义图标
                    "view":{
                        "addDiyDom": myAddDiyDom,
                        "addHoverDom": myAddHoverDom,
                        "removeHoverDom": myRemoveHoverDom
                    },
                    //  实现点击后不跳转
                    "data": {
                        "key": {
                            "url": "maomi"
                        }
                    }
                };
                //  3.从响应体中获取用来生成树形结构的 JSON 数据
                var zNodes = response.queryData;
                //  4.初始化树形结构
                $.fn.zTree.init($("#treeDemo"),setting,zNodes);
            }

            if(result == "FAILED") {
                layer.msg(response.message);
            }

        }
    })
}